package placemodel

import "yundian/internel/pkg/dingo"

// Places 网点管理
type PlaceModel struct {
	Id           int    `gorm:"primary_key;column:id" json:"id"`
	HotelId      string `gorm:"column:hotel_id" json:"hotelId"`
	ClassName    string `gorm:"column:class_name" json:"className"`
	PlaceName    string `gorm:"column:place_name" json:"placeName"`     // 门店名称、酒店名称
	PlaceDesc    string `gorm:"column:place_desc" json:"placeDesc"`     // 门店描述、酒店介绍
	ProjectLabel string `gorm:"project_label" json:"projectLabel"`      // 项目标识
	ServiceCall  string `gorm:"column:service_call" json:"serviceCall"`

	// 门店图片信息
	PlaceImg     string `gorm:"column:place_img" json:"placeImg"`   // 网点图片
	PlaceLicense string `gorm:"place_license" json:"placeLicense"`  // 营业执照
	PlaceFace    string `gorm:"place_face" json:"placeFace"`        // 店面照片
	PlaceDesign  string `gorm:"place_design" json:"placeDesign"`    // 店面环境

	//地区
	Province    string `gorm:"column:province" json:"province"`      // 用户所在省份
	City        string `gorm:"column:city" json:"city"`              // 用户所在城市
	County      string `gorm:"column:county" json:"county"`          // 用户所在县
	Country     string `gorm:"column:country" json:"country"`        // 国家
	Address     string `gorm:"column:address" json:"address"`
	RegionCode  string `gorm:"column:region_code" json:"regionCode"` //省市县 编号
	RegionIds   string `gorm:"column:region_ids" json:"regionIds"`   //省市县 编号
	ProvinceId  int    `gorm:"column:province_id" json:"provinceId"` //省份ID
	CityId      int    `gorm:"column:city_id" json:"cityId"`         //城市ID
	CountyId    int    `gorm:"column:county_id" json:"countyId"`     //区、县ID
	AreaId      int    `gorm:"column:area_id" json:"areaId"`         //区域ID
	Longitude   string `gorm:"column:longitude" json:"longitude"`    // 经度
	Latitude    string `gorm:"column:latitude" json:"latitude"`      // 纬度

	UserID        int    `gorm:"column:user_id" json:"userId"`                // 用户ID
	UserName      string `gorm:"column:user_name" json:"userName"`
	AgentUserId   int    `gorm:"column:agent_user_id" json:"agentUserId"`     // 代理商用户ID
	AgentUserName string `gorm:"column:agent_user_name" json:"agentUserName"` // 代理商名称
	MscID         int    `gorm:"column:msc_id" json:"mscId"`                  // 供应商ID
	KaUserId      int    `gorm:"column:ka_user_id" json:"kaUserId"`           // KAID
	BranchUserId  int    `gorm:"column:branch_user_id" json:"branchUserId"`   // 分公司ID
	MaintainerId  int    `gorm:"column:maintainer_id" json:"maintainerId"`    // 维护者ID

	DeviceCount int    `gorm:"column:device_count" json:"deviceCount"` // 拥有设备数
	LoginCount  int    `gorm:"column:login_count" json:"loginCount"`   //

	OpeningTime   string `gorm:"column:opening_time" json:"opening_time"`
	CloseingTime  string `gorm:"column:closeing_time" json:"closeing_time"`
	BusinessHours string `gorm:"column:business_hours" json:"business_hours"`

	// 商户进场模式
	EntryMoney  int        `gorm:"column:entry_money" json:"entryMoney"`   // 进场金额
	EntryAt     dingo.Time `gorm:"column:entry_at" json:"entryAt"`         // 进场时间
	EntryStatus int8       `gorm:"column:entry_status" json:"entryStatus"` // 状态

	//酒店公告
	Bulletin   string `gorm:"bulletin" json:"bulletin"`
	IsBulletin string `gorm:"is_bulletin" json:"isBulletin"`

	IsAd         int     `gorm:"is_ad" json:"isAd"`                  //是否展示广告
	IsBusiness   int     `gorm:"is_business" json:"isBusiness"`      //
	IsOpenFirst  int     `gorm:"is_open_first" json:"isOpenFirst"`   // 是否开启首单
	IsTianHai    int8    `gorm:"column:is_tianhai" json:"-"`
	IsSteward    uint8   `gorm:"column:is_steward" json:"isSteward"`
	IsDelete     uint8   `gorm:"column:is_delete" json:"-"`
	IsOpen       uint8   `gorm:"column:is_open" json:"isOpen"`       // 临时用

	Status      int8    `gorm:"column:status" json:"status"`      // 状态
	Level       string  `gorm:"column:level" json:"level"`        // 商户评级
	UsedRate    float32 `gorm:"column:used_rate" json:"usedRate"` // 商户使用率
	Url         string  `gorm:"column:url" json:"url"`
	Banners     string  `gorm:"column:banners" json:"banners"`
	DrawStr     string  `gorm:"draw_str" json:"drawStr"`

	LastLoginIp   string     `gorm:"column:last_login_ip" json:"lastLoginIp"` // 最后登录IP
	LastLoginTime dingo.Time `gorm:"column:last_login_time" json:"lastLoginTime"`

	CreateAt     dingo.Time `gorm:"column:create_at" json:"createAt"` // 创建时间
	UpdateAt     dingo.Time `gorm:"column:update_at" json:"updateAt"` // 修改时间
	DeleteAt     dingo.Time `gorm:"column:delete_at" json:"-"`
}

// model init
func NewPlaceModel() *PlaceModel {
	return &PlaceModel{}
}

// TableName
func (m *PlaceModel) TableName() string {
	return "places"
}

//
func (m *PlaceModel) Mutate(attrs ...PlacesAttr) *PlaceModel {
	PlacesAttrs(attrs).Alppy(m)
	return m
}